package cn.ffcs.uec.staff.model;

import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import cn.ffcs.uec.common.vo.UecBdDefdoc;
import cn.ffcs.uec.organization.model.UecOrgOrgs;
import cn.ffcs.uec.staff.dao.UecEncDao;
import cn.ffcs.uom.common.model.UomEntity;
import cn.ffcs.uom.common.util.ApplicationContextUtil;
import cn.ffcs.uom.common.util.StrUtil;
import lombok.Getter;
import lombok.Setter;


/**
 * @Title:奖励情况信息实体类
 * @Description:
 * @Copyright: FFCS（C） 2017
 * @Company: FFCS
 * @author Wang Yiren
 * @Version 0.0.1 date:2017年11月22日
 * @since JDK1.6
 */
public class UecEnc extends UomEntity implements Serializable {

	private static final long serialVersionUID = -1050455579105531933L;

	/**
	 * 奖励情况主键
	 * 
	 * @return
	 */
	public Long getEncId() {
		return super.getId();
	}

	public void setEncId(Long encId) {
		super.setId(encId);
	}

	/**
	 * 员工标识
	 */
	@Getter
	@Setter
	private Long staffId;
	/**
	 * 员工类型
	 * 由于合同制、外包人员的奖励信息都放在一张表中
	 * 故用这个字段来区分
	 * nmStaffType = 2  为合同制
	 */
	@Getter
	@Setter
    private String nmStaffType;
	/**
	 * 账期
	 */
	@Getter
	@Setter
	private Long monthId;
	/**
	 * 主键
	 */
	@Getter
	@Setter
    private String pkPsndocSub;
	/**
	 * 奖励事由
	 */
	@Getter
	@Setter
    private String encourmatter;
	/**
	 * 创建时间
	 */
	@Getter
	@Setter
    private String creationtime;
	/**
	 * 奖励日期
	 */
	@Getter
	@Setter
    private String encourdate;
	/**
	 * 奖励类型
	 */
	@Getter
	@Setter
    private String encourtype;
	/**
	 * 奖励措施
	 */
	@Getter
	@Setter
    private String encourmeas;
	/**
	 * 奖励名称
	 */
	@Getter
	@Setter
    private String glbdef1;
	/**
	 * 修改人
	 */
	@Getter
	@Setter
    private String modifier;
	/**
	 * 奖励档次--glbdef5
	 */
	@Getter
	@Setter
    private String glbdef5;
	/**
	 * 所属组织
	 */
	@Getter
	@Setter
    private String pkOrg;
	/**
	 * 修改时间
	 */
	@Getter
	@Setter
    private String modifiedtime;
	/**
	 * 奖励机构
	 */
	@Getter
	@Setter
    private String encourorg;
	/**
	 * 奖励级别
	 */
	@Getter
	@Setter
    private String encourrank;
	/**
	 * 创建人
	 */
	@Getter
	@Setter
    private String creator;
	/**
	 * 人员基本信息
	 */
	@Getter
	@Setter
    private String pkPsndoc;
	/**
	 * 时间戳
	 */
	@Getter
	@Setter
    private String ts;
	/**
	 * 删除标志
	 */
	@Getter
	@Setter
    private Long dr;
	/**
	 * 最近记录标志
	 */
	@Getter
	@Setter
    private String lastflag;
	/**
	 * 记录序号
	 */
	@Getter
	@Setter
    private Long recordnum;


	public static UecEnc newInstance() {
		return new UecEnc();
	}
	
	/**
	 * 获取dao
	 * @return
	 */
	public UecEncDao repository() {
		return (UecEncDao) ApplicationContextUtil.getBean("uecEncDao");
	}
	
	/**
	 * 获取奖励级别--encourrank
	 * 
	 * @return
	 */
	public String getEncourrankName() {
		if (this.getEncourrank() != null) {
			String sql = "SELECT * FROM UEC_BD_DEFDOC WHERE PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getEncourrank());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql,
					params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 奖励档次--glbdef5
	 */
	public String getGlbdef5Name() {
		if(this.getGlbdef5() != null) {
			String sql = "SELECT * FROM UEC_BD_DEFDOC WHERE PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getGlbdef5());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql,
					params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 所属组织 名称
	 */
	public String getPkOrgName() {
		if(this.pkOrg != null) {
			String sql = " SELECT * FROM UEC_ORG_ORGS T  WHERE T.PK_ORG = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.pkOrg);
			List<UecOrgOrgs> list = this.repository().jdbcFindList(sql,
					params, UecOrgOrgs.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return null;
	}
	
	/**
	 * 删除标识 名称
	 * @return
	 */
	public String getDrName() {
		if(null != this.dr) {
			return this.dr == 0L?"否":"是";
		}
		return null;
	}
	
	/**
	 * 最近记录标识 名称
	 * @return
	 */
	public String getLastflagName() {
		if ("Y".equals(this.getLastflag())) {
			return "是";
		}else {
			return "否";
		}
		
	}
	
	//奖励日期格式化(必须是可以转的日期，若是1993/8/7，则会报错)
	public String dataTraslate(String data) throws ParseException {
    	SimpleDateFormat df=new SimpleDateFormat("yyyy-mm");
    	Date parse = df.parse(data);
    	String newDate = df.format(parse);
    	return newDate;
    }
    public String getDataCollection() throws ParseException {
    	String aa="";
    	String bb="";
    	String cc="";
    	if(!StrUtil.isNullOrEmpty(this.encourdate)) {
    		aa=dataTraslate(this.encourdate);
    	}
    	if(!StrUtil.isNullOrEmpty(aa)) {
			cc=aa.replace('-', '.');
		}
    	return cc;
    }
}
